package com.dyzx.hbb.modules.wms.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
@Schema(description = "商品信息")
public class WmsProductVO {
    /**
     * 产品名称
     */
    @Schema(description = "产品名称")
    @JsonProperty("name")
    @NotNull(message = "产品名称不能为空")
    private String name;

    /**
     * 类别
     */
    @Schema(description = "类别")
    @JsonProperty("category_id")
    @NotNull(message = "类别不能为空")
    private Long categoryId;

    /**
     * 内部物料代码/零件号
     */
    @Schema(description = "内部物料代码/零件号")
    @JsonProperty("internal_code")
    @NotNull(message = "内部物料代码不能为空")
    private String internalCode;

    /**
     * 状态 字典信息：sys_global_status
     */
/*    @Schema(description = "状态 字典信息：sys_global_status")
    @JsonProperty("status")
    @NotNull(message = "状态不能为空")
    private Integer status;*/

    /**
     * 详细的产品描述、功能、技术特点
     */
    @Schema(description = "详细的产品描述")
    @JsonProperty("description")
    private String description;

    /**
     * 供应商ID
     */
    @Schema(description = "供应商ID")
    @JsonProperty("supplier_id")
    private Long supplierId;

    /**
     * 计量单位 字典：wms_product_unit_of_measure
     */
    @Schema(description = "计量单位")
    @JsonProperty("unit_of_measure")
   // @NotNull(message = "计量单位不能为空")
    private String unitOfMeasure;

    /**
     * 重量
     */
    @Schema(description = "重量")
    @JsonProperty("weight")
    private Long weight;

    /**
     * 尺寸
     */
    @Schema(description = "尺寸")
    @JsonProperty("dimensions")
    private String dimensions;

    /**
     * 产品图片URL
     */
    @Schema(description = "产品图片URL")
    @JsonProperty("image_url")
    private String imageUrl;

    /**
     * 产品图片URL
     */
    @Schema(description = "产品图片URL")
    @JsonProperty("image_id")
    private String imageId;

    /**
     * 是否有效
     */
    @Schema(description = "是否有效")
    @JsonProperty("is_active")
   // @NotNull(message = "是否有效不能为空")
    private Integer isActive;

    /**
     * 质量追溯标记
     */
    @Schema(description = "质量追溯标记")
    @JsonProperty("quality_trace_flag")
    private Integer qualityTraceFlag;

    /**
     * 符合的标准
     */
    @Schema(description = "符合的标准")
    @JsonProperty("standard_compliance")
    private String standardCompliance;


    /**
     * 价格
     */
    @NotNull(message = "价格不能为空")
    @Schema(description = "价格")
    @JsonProperty("amt")
    private Long amt;



    /**
     * (可选): 毛重
     */
    @Schema(description = "毛重")
    @JsonProperty("grossweight")
    private Long grossweight;

    /**
     * (可选): 净重
     */
    @Schema(description = "净重")
    @JsonProperty("netweight")
    private Long netweight;

    /**
     * (可选): 宽度
     */
    @Schema(description = "宽度")
    @JsonProperty("width")
    private Long width;

    /**
     * (可选): 高度
     */
    @Schema(description = "高度")
    @JsonProperty("height")
    private Long height;

    /**
     * (可选): 深度
     */
    @Schema(description = "深度")
    @JsonProperty("depth")
    private Long depth;

    /**
     * (可选): 原产国
     */
    @Schema(description = "原产国")
    @JsonProperty("origincountry")
    private String origincountry;

    /**
     * (可选): 原产地
     */
    @Schema(description = "原产地")
    @JsonProperty("originplace")
    private String originplace;

    /**
     * (可选): 组装国
     */
    @Schema(description = "组装国")
    @JsonProperty("assemblycountry")
    private String assemblycountry;

    /**
     * (可选): 生产厂家
     */
    @Schema(description = "生产厂家")
    @JsonProperty("company")
    private String company;

    /**
     * 英文名称
     */
    @Schema(description = "英文名称")
    @JsonProperty("ename")
    private String ename;

    /**
     * UNSPSC代码
     */
    @Schema(description = "UNSPSC代码")
    @JsonProperty("unspsc")
    private String unspsc;

    /**
     * 品牌
     */
    @Schema(description = "品牌")
    @JsonProperty("brand")
    private String brand;

    /**
     * (可选): 净含量
     */
    @Schema(description = "净含量")
    @JsonProperty("netcontent")
    private String netcontent;
}